package com.youlai.boot.modules.game.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.modules.game.model.entity.GameTag;
import com.youlai.boot.modules.game.model.form.GameTagForm;

import java.util.List;

/**
 * 游戏标签服务接口
 *
 * @author 有来技术团队
 */
public interface GameTagService extends IService<GameTag> {

    /**
     * 获取标签分页列表
     *
     * @param pageNum  页码
     * @param pageSize 每页大小
     * @param keywords 关键字
     * @return 标签分页列表
     */
    Page<GameTag> getTagPage(Integer pageNum, Integer pageSize, String keywords);

    /**
     * 获取所有标签
     *
     * @return 标签列表
     */
    List<GameTag> getAllTags();

    /**
     * 根据ID获取标签
     *
     * @param id 标签ID
     * @return 标签
     */
    GameTag getTagById(Long id);

    /**
     * 根据游戏ID获取标签列表
     *
     * @param gameId 游戏ID
     * @return 标签列表
     */
    List<GameTag> getTagsByGameId(Long gameId);

    /**
     * 新增标签
     *
     * @param formData 表单数据
     * @return 标签ID
     */
    Long addTag(GameTagForm formData);

    /**
     * 修改标签
     *
     * @param id 标签ID
     * @param formData 表单数据
     * @return 是否成功
     */
    boolean updateTag(Long id, GameTagForm formData);

    /**
     * 删除标签
     *
     * @param ids 标签ID列表
     * @return 是否成功
     */
    boolean deleteTags(List<Long> ids);
} 